package br.com.sistemaGabinete.dao;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import br.com.sistemaGabinete.entity.Usuario;
import br.com.sistemaGabinete.entity.UsuarioSistema;

public class UsuarioDAO {

	public void excluirUsuario(Usuario usuario) {
		new DAO<Usuario>(Usuario.class).remove(usuario);
	}

	public List<Usuario> obterUsuarios() {
		return new DAO<Usuario>(Usuario.class).listaTodos();
	}

	public void fazSalvarUsuario(Usuario usuario) {
		new DAO<Usuario>(Usuario.class).adiciona(usuario);
	}

	public void alterarUsuario(Usuario usuario) {
		new DAO<Usuario>(Usuario.class).atualiza(usuario);
	}
	
	public List<Usuario> obterUsuariosAtivos(){
		EntityManager entityManager = new JPAUtil().getEntityManager();
		Query query = (Query) entityManager.createQuery("select u from Usuario u WHERE u.situacao = :situacaoUsuario AND u.perfil = :nomePerfil");
		query.setParameter("situacaoUsuario", Boolean.TRUE);
		query.setParameter("nomePerfil", "parlamentar");
		@SuppressWarnings("unchecked")
		List<Usuario> usuariosAtivos = ((List<Usuario>) query.getResultList());
		entityManager.close();
		return usuariosAtivos;
	}

	public List<UsuarioSistema> obterDadosUsuario(UsuarioSistema usuarioSistema) {
		EntityManager entityManager = new JPAUtil().getEntityManager();
		Query query = (Query) entityManager.createQuery("select u from UsuarioSistema u WHERE u.login = :loginUsuario AND u.senha = :senhaUsuario");

		//verificar o usuario ativo
		//query.setParameter("situacaoUsuario", Boolean.TRUE);
		
		query.setParameter("loginUsuario", usuarioSistema.getLogin());
		query.setParameter("senhaUsuario", usuarioSistema.getSenha());
		
		@SuppressWarnings("unchecked")
		List<UsuarioSistema> usuariosSistema = ((List<UsuarioSistema>) query.getResultList());
		entityManager.close();
		return usuariosSistema;
	}

}
